home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games 1996 July / Amiga Games 1996 #7.iso / userbox / publicdomain / memory-device / source / smakefile < prev    next >
Encoding:
Makefile  |  1996-04-09  |  5.0 KB  |  194 lines

  1. #!sc:c/smake
  2. #
  3. #####################################################################
  4. #
  5. # SMakefile for memory.device
  6. #
  7. # (C) Copyright 1996 Marius Gröger
  8. #     All Rights Reserved
  9. #
  10. #####################################################################
  11.  
  12. #####################################################################
  13. #
  14. # installation drawer and names of device
  15. #
  16. INSTALL_DIR = EXT:Devs
  17. DEVICE_DIR  = /DEVS
  18. BASENAME    = memory-device
  19. RELNAME     = memdev
  20. NAME        = memory.device
  21. IDS         = aminet.ids
  22. VERSION     = 37
  23. #
  24. #####################################################################
  25.  
  26. #####################################################################
  27. #
  28. # following stuff is your configuration
  29. #
  30. LIBS        = LIB LIB:amiga.lib LIB lib:sc.lib LIB lib:debug.lib
  31. CINCLUDES   = INCDIR "NETINCLUDE:"
  32. ASMINCLUDES = INCDIR="INCLUDEA:" INCDIR="NETINCLUDE:"
  33. CPUSUFFIX   = 020 # 000 010 020 030 040 ANY
  34. CPUCCOPT    = CPU=68$(CPUSUFFIX)
  35. CP          = C:Copy
  36. MV          = C:Rename
  37. RM          = C:Delete >NIL:
  38. LD          = sc:c/slink
  39. CC          = sc:c/sc
  40. AS          = sc:c/sc
  41. MAKE        = sc:c/smake
  42. BUMPREV     = C:bumprev
  43. SETREV      = C:SetRev
  44. PROTECT     = protect
  45. BUILD_AMINET= /s/build-aminet
  46. ECHO        = Echo
  47. #
  48. #####################################################################
  49.  
  50. #####################################################################
  51. #
  52. # assembler/compiler flags
  53. #
  54. # this applies to normal and optimized compilation:
  55. #
  56. STDFLAGS    = $(CINCLUDES) NOMULTIPLEINCLUDES ERRREXX COMMENTNEST NOSTKCHK NOCHKABORT\
  57.               SMALLCODE SMALLDATA VERBOSE NOICONS STRICT ANSI
  58. #
  59. # this applies only to normal compilation:
  60. #
  61. NORMCFLAGS  = $(STDFLAGS)
  62. #
  63. # this applies only to optimized compilation:
  64. #
  65. OPTCFLAGS   = $(STDFLAGS) $(CPUCCOPT) PARAMETERS=REGISTERS OPT OPTTIME OPTINLINE\
  66.               OPTSCHEDULE STRINGMERGE STRUCTUREEQUIVALENCE
  67. #
  68. # this applies to assembler compilation
  69. #
  70. AFLAGS      = $(ASMINCLUDES) VERBOSE SMALLCODE SMALLDATA
  71. #
  72. #####################################################################
  73.  
  74. #####################################################################
  75. #
  76. # linkage flags
  77. #
  78. LDFLAGS     = NOICONS SC SD ND $(LIBS) TO
  79. OPTLDFLAGS  = NOICONS SC SD ND $(LIBS) TO
  80. #
  81. #####################################################################
  82.  
  83. #####################################################################
  84. #
  85. # the object files
  86. #
  87. NORMOBJ=rt.o copymem.o device.no
  88. OPTOBJ=rt.o copymem.o device.opt$(CPUSUFFIX)
  89. #
  90. #####################################################################
  91.  
  92. #####################################################################
  93. #
  94. # rules
  95. #
  96. # compile a file normally
  97. #
  98. .c.no:
  99.    $(CC) $(NORMCFLAGS) $*.c
  100.    -@$(RM) $*.no
  101.    @$(MV) $*.o $*.no
  102. #
  103. # compile a file optimizing
  104. #
  105. .c.opt$(CPUSUFFIX):
  106.    $(CC) $(OPTCFLAGS) $*.c
  107.    -@$(RM) $*.opt$(CPUSUFFIX)
  108.    @$(MV) $*.o $*.opt$(CPUSUFFIX)
  109. #
  110. # assemble a file
  111. #
  112. .asm.o:
  113.    $(AS) $(AFLAGS) $*.asm
  114. #
  115. #####################################################################
  116.  
  117. #####################################################################
  118. #
  119. # targets
  120. #
  121. help:
  122.    -@Echo "Usage:"
  123.    -@Echo "To make an unoptimized version"
  124.    -@Echo "   $(MAKE) all"
  125.    -@Echo "To make an optimized version"
  126.    -@Echo "   $(MAKE) all_opt"
  127.    -@Echo "To install an unoptimized version"
  128.    -@Echo "   $(MAKE) install"
  129.    -@Echo "To install an optimized version"
  130.    -@Echo "   $(MAKE) install"
  131.    -@Echo "To increment the revision"
  132.    -@Echo "   $(MAKE) newrev"
  133.    -@Echo "To remove all intermediate files for unoptimized the version"
  134.    -@Echo "   $(MAKE) clean_norm"
  135.    -@Echo "To remove all intermediate files for optimized the version"
  136.    -@Echo "   $(MAKE) clean_opt"
  137.    -@Echo "To %remove all intermediate files"
  138.    -@Echo "   %$(MAKE) clean"
  139.    -@Echo "To create a distribution"
  140.    -@Echo "   $(MAKE) release"
  141.  
  142. all: $(DEVICE_DIR)/$(NAME)
  143. all_opt: $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)
  144.  
  145. install: all
  146.    $(CP) $(DEVICE_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
  147.  
  148. install_opt: all_opt
  149.    $(CP) $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX) $(INSTALL_DIR)/$(NAME)
  150.  
  151. newrev:
  152.    $(BUMPREV) $(VERSION) $(BASENAME)
  153.  
  154. speed: speed.no copymem.o
  155.    $(LD) FROM LIB:Astartup.obj speed.no copymem.o $(LDFLAGS) $@
  156.  
  157. clean_norm:
  158.    -@$(RM) speed
  159.    -@$(RM) *.lnk
  160.    -@$(RM) *.o
  161.    -@$(RM) *.no
  162.  
  163. clean_opt:
  164.    -@$(RM) speed
  165.    -@$(RM) *.lnk
  166.    -@$(RM) *.o
  167.    -@$(RM) *.opt*
  168.  
  169. clean: clean_norm clean_opt
  170.  
  171. release:
  172.    $(MAKE) CPUSUFFIX=000 all_opt
  173.    $(MAKE) CPUSUFFIX=020 all_opt
  174.    $(MAKE) CPUSUFFIX=040 all_opt
  175.    $(BUILD_AMINET) "$(RELNAME)" "$(BASENAME)" "$(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)" "/ReadMe" "//$(BASENAME)" "$(IDS)" CLEAN
  176.  
  177. $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX): $(OPTOBJ)
  178.    $(LD) $(OPTOBJ) $(OPTLDFLAGS) $@
  179.  
  180. $(DEVICE_DIR)/$(NAME): $(NORMOBJ)
  181.    $(LD) $(NORMOBJ) $(LDFLAGS) $@
  182. #
  183. #####################################################################
  184.  
  185. #####################################################################
  186. #
  187. # various dependencies
  188. #
  189. rt.o: rt.asm memory.i memory-device_rev.i
  190. device.opt$(CPUSUFFIX) device.no: device.c memory.h
  191. #
  192. #####################################################################
  193.  
  194.